#include "cameraWidget.h"
#include <QApplication>
#include <QFontDatabase>

#include "server.h"
#include "videowidget.h"
#include "videolist.h"
#include "mainview.h"
#include <QDir>
#include <QSysInfo>
#include <QString>
#include <QFile>

// 判断是否在 Ubuntu 环境下运行
bool isRunningOnUbuntu()
{
    QString os = QSysInfo::productType();
    QString version = QSysInfo::productVersion();

    if (os == "ubuntu") {
        return true;
    } else {
        return false;
    }
}

void mkdir(QString path)
{
    QDir dir;
    dir.setPath(path);
    if(!dir.exists())
    {
        if(!dir.mkpath(path))
        {
            qDebug() << "mkdir fail:" << path;
        }
    }
}


int main(int argc, char *argv[])
{
    qRegisterMetaType<Key_t>("Key_t");
    qRegisterMetaType<Data_t>("Data_t");
    qRegisterMetaType< QList<Data_t> >("QList<Data_t>");

    QApplication a(argc, argv);

    //qSetMessagePattern("[%{time yyyyMMdd h:mm:ss.zzz}] %{file}[%{function}](%{line}): %{message}");

    // 加载字体文件
    QFontDatabase fontDB;
    QString fontPath = ":/res/1.otf";
    int fontId = fontDB.addApplicationFont(fontPath);

    // 检查字体是否已经被加载
    if (fontId != -1)
    {
        //获取导入的字体文件中，有几种字体样式，比如字体文件中存在粗体和普通字体样式，需要逐一设置
        QStringList fontFamilies = fontDB.applicationFontFamilies(fontId);
        foreach (QString fontFamily, fontFamilies)
        {
            // 设置字体
            QFont font(fontFamily);
            a.setFont(font);
        }
    }
    else
    {
        qDebug() << "Load font failed";
    }
    qDebug() << "font:" << qApp->font().family();

    mkdir(PATH VIEW_ONE_PATH);
    mkdir(PATH VIEW_TWO_PATH1);
    mkdir(PATH VIEW_TWO_PATH2);
    mkdir(PATH VIEW_FOUR_PATH1);
    mkdir(PATH VIEW_FOUR_PATH2);
    mkdir(PATH VIEW_FOUR_PATH3);
    mkdir(PATH VIEW_FOUR_PATH4);
    if(!isRunningOnUbuntu())
    {
        KeyThread::Get()->start();
        Server::Get()->start();
    }

    QString p = "/usr/bin/mplayer";
    if(!QFile::exists(p))
    {
        QFile f(":/res/mplayer");
        qDebug() << f.copy(p);
        system("chmod 777 /usr/bin/mplayer");
    }

    MainView w;
    //VideoWidget w;
    //MainWindow w;
    //w.show();

    return a.exec();
}
